Expand description

Ansi-cut

A library which provides a set of methods to work with colored strings (by ansi sequences).

Its a library agnostic library. Therefore it can be used with any ansi color library. (e.g. owo-colors, nu-ansi-term ).

Example

use owo_colors::*;
use ansi_str::AnsiStr;
let hello = "Hello World!".red().to_string();
let (hello, world) = hello.ansi_split_at(6);
println!("{}", hello);
println!("{}", world);

Note

The library doesn’t guarantee to keep style of usage of ansi sequences.

For example if your string is "\u{1b}[31;40mTEXT\u{1b}[0m" and you will call get method. It may not use "\u{1b}[31;40m" but it use it as "\u{1b}[31m" and "\u{1b}[40m".

Why that matters is because for example the following code example is not guaranteed to be true.

let hello1 = "Hello World!".red();
let hello2 = hello.ansi_get(..).unwrap();
assert_eq!(hello1, hello2)

Structs

Traits

AnsiStr represents a list of functions to work with colored strings defined as ANSI control sequences.